home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / pd / serien / purity / nr.42 / includes3v1 / includes3v1.lha / Intuition / ImageClass.i < prev    next >
Text File  |  1994-12-04  |  7KB  |  229 lines

  1. { ImageClass.i }
  2.  
  3. {$I   "Include:Utility/TagItem.i"}
  4.  
  5. {
  6.  * NOTE:  <intuition/iobsolete.h> is included at the END of this file!
  7.  }
  8.  
  9. CONST
  10.  CUSTOMIMAGEDEPTH     =   (-1);
  11. { if image.Depth is this, it's a new Image class object }
  12.  
  13. { some convenient macros and casts }
  14. FUNCTION GADGET_BOX(g : GadgetPtr) : Integer;
  15.  External;
  16.  
  17. FUNCTION IM_BOX(im : ImagePtr) : Integer;
  18.  External;
  19.  
  20. FUNCTION IM_FGPEN(im : ImagePtr) : Short;
  21. BEGIN
  22.  IM_FGPEN:=im^.PlanePick;
  23. END;
  24.  
  25. FUNCTION IM_BGPEN(im : ImagePtr) : Short;
  26. BEGIN
  27.  IM_BGPEN:=im^.PlaneOnOff;
  28. END;
  29.  
  30. {****************************************************}
  31. CONST
  32.  IA_Dummy             =   (TAG_USER + $20000);
  33.  IA_Left              =   (IA_Dummy + $01);
  34.  IA_Top               =   (IA_Dummy + $02);
  35.  IA_Width             =   (IA_Dummy + $03);
  36.  IA_Height            =   (IA_Dummy + $04);
  37.  IA_FGPen             =   (IA_Dummy + $05);
  38.                     { IA_FGPen also means "PlanePick"  }
  39.  IA_BGPen             =   (IA_Dummy + $06);
  40.                     { IA_BGPen also means "PlaneOnOff" }
  41.  IA_Data              =   (IA_Dummy + $07);
  42.                     { bitplanes, for classic image,
  43.                      * other image classes may use it for other things
  44.                      }
  45.  IA_LineWidth         =   (IA_Dummy + $08);
  46.  IA_Pens              =   (IA_Dummy + $0E);
  47.                     { pointer to UWORD pens[],
  48.                      * ala DrawInfo.Pens, MUST be
  49.                      * terminated by ~0.  Some classes can
  50.                      * choose to have this, or SYSIA_DrawInfo,
  51.                      * or both.
  52.                      }
  53.  IA_Resolution        =   (IA_Dummy + $0F);
  54.                     { packed uwords for x/y resolution into a longword
  55.                      * ala DrawInfo.Resolution
  56.                      }
  57.  
  58. {*** see class documentation to learn which    ****}
  59. {*** classes recognize these                   ****}
  60.  IA_APattern           =  (IA_Dummy + $10);
  61.  IA_APatSize           =  (IA_Dummy + $11);
  62.  IA_Mode               =  (IA_Dummy + $12);
  63.  IA_Font               =  (IA_Dummy + $13);
  64.  IA_Outline            =  (IA_Dummy + $14);
  65.  IA_Recessed           =  (IA_Dummy + $15);
  66.  IA_DoubleEmboss       =  (IA_Dummy + $16);
  67.  IA_EdgesOnly          =  (IA_Dummy + $17);
  68.  
  69. {*** "sysiclass" attributes                    ****}
  70.  SYSIA_Size            =  (IA_Dummy + $0B);
  71.                     { 's below          }
  72.  SYSIA_Depth           =  (IA_Dummy + $0C);
  73.                     { this is unused by Intuition.  SYSIA_DrawInfo
  74.                      * is used instead for V36
  75.                      }
  76.  SYSIA_Which           =  (IA_Dummy + $0D);
  77.                     { see 's below      }
  78.  SYSIA_DrawInfo        =  (IA_Dummy + $18);
  79.                     { pass to sysiclass, please }
  80.  
  81. {****  obsolete: don't use these, use IA_Pens  ****}
  82.  SYSIA_Pens            =  IA_Pens;
  83.  IA_ShadowPen          =  (IA_Dummy + $09);
  84.  IA_HighlightPen       =  (IA_Dummy + $0A);
  85.  
  86. { New for V39: }
  87.  SYSIA_ReferenceFont   =  (IA_Dummy + $19);
  88.                     { Font to use as reference for scaling
  89.                      * certain sysiclass images
  90.                      }
  91.  IA_SupportsDisable    =  (IA_Dummy + $1a);
  92.                     { By default, Intuition ghosts gadgets itself,
  93.                      * instead of relying on IDS_DISABLED or
  94.                      * IDS_SELECTEDDISABLED.  An imageclass that
  95.                      * supports these states should return this attribute
  96.                      * as TRUE.  You cannot set or clear this attribute,
  97.                      * however.
  98.                      }
  99.  
  100.  IA_FrameType          =  (IA_Dummy + $1b);
  101.                     { Starting with V39, FrameIClass recognizes
  102.                      * several standard types of frame.  Use one
  103.                      * of the FRAME_ specifiers below.  Defaults
  104.                      * to FRAME_DEFAULT.
  105.                      }
  106.  
  107. {* next attribute: (IA_Dummy + $1c)   *}
  108.  
  109. {***********************************************}
  110.  
  111. { data values for SYSIA_Size   }
  112.  SYSISIZE_MEDRES = (0);
  113.  SYSISIZE_LOWRES = (1);
  114.  SYSISIZE_HIRES  = (2);
  115.  
  116. {
  117.  * SYSIA_Which tag data values:
  118.  * Specifies which system gadget you want an image for.
  119.  * Some numbers correspond to internal Intuition s
  120.  }
  121.  DEPTHIMAGE     = ($00);
  122.  ZOOMIMAGE      = ($01);
  123.  SIZEIMAGE      = ($02);
  124.  CLOSEIMAGE     = ($03);
  125.  SDEPTHIMAGE    = ($05); { screen depth gadget }
  126.  LEFTIMAGE      = ($0A);
  127.  UPIMAGE        = ($0B);
  128.  RIGHTIMAGE     = ($0C);
  129.  DOWNIMAGE      = ($0D);
  130.  CHECKIMAGE     = ($0E);
  131.  MXIMAGE        = ($0F); { mutual exclude "button" }
  132. {* New for V39: *}
  133.  MENUCHECK      = ($10); { Menu checkmark image }
  134.  AMIGAKEY       = ($11); { Menu Amiga-key image }
  135.  
  136.  
  137. { image message id's   }
  138.     IM_DRAW     = $202;  { draw yourself, with "state"          }
  139.     IM_HITTEST  = $203;  { return TRUE IF click hits image      }
  140.     IM_ERASE    = $204;  { erase yourself                       }
  141.     IM_MOVE     = $205;  { draw new AND erase old, smoothly     }
  142.  
  143.     IM_DRAWFRAME= $206;  { draw with specified dimensions       }
  144.     IM_FRAMEBOX = $207;  { get recommended frame around some box}
  145.     IM_HITFRAME = $208;  { hittest with dimensions              }
  146.     IM_ERASEFRAME= $209; { hittest with dimensions              }
  147.  
  148. { image draw states or styles, for IM_DRAW }
  149.     IDS_NORMAL          = (0);
  150.     IDS_SELECTED        = (1);    { for selected gadgets     }
  151.     IDS_DISABLED        = (2);    { for disabled gadgets     }
  152.     IDS_BUSY            = (3);    { for future functionality }
  153.     IDS_INDETERMINATE   = (4);    { for future functionality }
  154.     IDS_INACTIVENORMAL  = (5);    { normal, in inactive window border }
  155.     IDS_INACTIVESELECTED= (6);    { selected, in inactive border }
  156.     IDS_INACTIVEDISABLED= (7);    { disabled, in inactive border }
  157.  
  158. { oops, please forgive spelling error by jimm }
  159.  IDS_INDETERMINANT = IDS_INDETERMINATE;
  160.  
  161. { IM_FRAMEBOX  }
  162. Type
  163.   impFrameBox = Record
  164.     MethodID   : Integer;
  165.     imp_ContentsBox  : IBoxPtr;       { input: relative box of contents }
  166.     imp_FrameBox     : IBoxPtr;          { output: rel. box of encl frame  }
  167.     imp_DrInfo       : DrawInfoPtr;
  168.     imp_FrameFlags   : Integer;
  169.   END;
  170.   impFrameBoxPtr = ^impFrameBox;
  171.  
  172. CONST
  173.  FRAMEF_SPECIFY = (1);  { Make do with the dimensions of FrameBox
  174.                                  * provided.
  175.                                  }
  176.  
  177. { IM_DRAW, IM_DRAWFRAME        }
  178. Type
  179.    imp_Offset_Struct = Record
  180.     x,y : Short;
  181.    END;
  182.  
  183.    imp_Dimensions_Struct = Record
  184.     Width, Height : Short;
  185.    END;
  186.  
  187.    impDraw = Record
  188.     MethodID    : Integer;
  189.     imp_RPort   : RastPortPtr;
  190.     imp_Offset  : imp_Offset_Struct;
  191.     imp_State   : Integer;
  192.     imp_DrInfo  : DrawInfoPtr;
  193.  
  194.     { these parameters only valid for IM_DRAWFRAME }
  195.     imp_Dimensions : imp_Dimensions_Struct;
  196.    END;
  197.    impDrawPtr = ^impDraw;
  198.  
  199. { IM_ERASE, IM_ERASEFRAME      }
  200. { NOTE: This is a subset of impDraw    }
  201.    impErase = Record
  202.     MethodID       : Integer;
  203.     imp_RPort      : RastPortPtr;
  204.     imp_Offset     : imp_Offset_Struct;
  205.  
  206.     { these parameters only valid for IM_ERASEFRAME }
  207.     imp_Dimensions : imp_Dimensions_Struct;
  208.    END;
  209.    impErasePtr = ^impErase;
  210.  
  211. { IM_HITTEST, IM_HITFRAME      }
  212.    imp_Point_Struct = Record
  213.     x,y : Short;
  214.    END;
  215.  
  216.    impHitTest = Record
  217.     MethodID   : Integer;
  218.     imp_Point  : imp_Point_Struct;
  219.  
  220.     { these parameters only valid for IM_HITFRAME }
  221.     imp_Dimensions : imp_Dimensions_Struct;
  222.    END;
  223.    impHitTestPtr = ^impHitTest;
  224.  
  225. {$I   "Include:Intuition/iobsolete.i"}
  226.  
  227.  
  228.  
  229.